Mobile and other computing devices often contain multiple network transports that can be used to connect to other computing devices and access services. For example, a mobile smartphone may include hardware for connecting to cellular data networks (e.g., 3G, EDGE, 4G), wireless networks (e.g., 802.11 Wi-Fi), and Bluetooth networks. Each network has advantages and disadvantages. For example, one network may offer higher throughput than other networks but may be available in fewer locations. Some networks may incur a higher cost for use, such as a limited 3G data plan versus free Wi-Fi. In some cases, particular network hardware may have higher power usage requirements and thus may exhibit longer or shorter battery life for the computing device.
Routing decisions determine which network is used to service a request from an application to send messages or other traffic over a network. Mobile devices often hard code the routing decision, so that, for example, the device prefers to use a Wi-Fi connection, and if no Wi-Fi connection is available uses a 3G connection, and if no 3G connection is available uses an EDGE connection. In this scheme, the device selects the fastest available connection irrespective of other considerations. Networked devices make many other types of decisions related to the network, such as what types of messages to send, under what conditions to use various network transports, how much power to use to transmit, and so forth.
There may be many other considerations besides bandwidth availability that informs a device's networking decisions, but today users are stuck with the choices that their communication service provider (e.g., cellular carrier, etc.)or device maker programmed into their device. Users may manually turn off Wi-Fi or other network transports to force a connection to one network type or another, but this process is tedious and involves digging through often-obscure settings interfaces to find the right configuration parameter to tweak. If a carrier has defined cost as the overriding concern of a routing decision, then other considerations are ignored and the user may appreciate the low monthly bill but wish for faster throughput in some cases. Conversely, if the carrier has defined throughput as the overriding concern then cost may be ignored. For corporate users of such devices, other policies may be desirable for devices issued to employees but there is no mechanism for controlling and enforcing the use of such policies.
Finally, there are considerations for devices that have no users to guide their behavior. These devices are generally specialized in nature and relatively fixed in function, in that they perform the same function throughout the lifetime of the device. For these specialized devices, their usage of the network is entirely dependent on the choices the device manufacturer made in regards to choosing a network, and the actual usage of the network connection is dependent upon how the applications that run on the device choose to use the network. For the owner of these devices, it can be difficult to alter these characteristics once the device has been shipped and configured.